Em muốn viết 1 chương trình delay dùm timer ma thời gian delay phu thuộc vào 1 port bất kỳ chẳng hạn là port p0 vidu port p0=255 thì thời gian delay sẽ là 255ms
Thông báo
Collapse
No announcement yet.
Xin giu`p đỡ về timer và ngắt
Collapse
X
-
như vậy là bộ đếm của bạn lớn nhất là 255Nguyên văn bởi sdtuan Xem bài viếtEm muốn viết 1 chương trình delay dùm timer ma thời gian delay phu thuộc vào 1 port bất kỳ chẳng hạn là port p0 vidu port p0=255 thì thời gian delay sẽ là 255ms
bạn có thể nạp vào tl0 như sau
mov th0,#ffh
mov TL0,-p0
-
sory mình nhầm
bạn viết như sau
.............
.................
....................
.................
MOV TH0,#HIGH(-1000)
MOV TL0,#LOW(-1000)
mov r0,p0
setb tr0
here:sjmp here
ngat_t0:
CLR TR0
MOV TH0,#HIGH(-1000)
MOV TL0,#LOW(-1000)
SETB TR0
;*****
DEC r0
CJNE r0,#255,KT
công việc
mov r0,p0
kt:
ret
Comment
-
MOV TH0,#HIGH(-1000)
MOV TL0,#LOW(-1000)
mov r0,p0
setb tr0
here:sjmp here
Đây là phần khởi tạo ngắt. Có nghĩa là cứ sau 1ms thì 1 ngắt timer sẽ dc kich hoạt.
ngat_t0:
CLR TR0
MOV TH0,#HIGH(-1000)
MOV TL0,#LOW(-1000)
SETB TR0
;*****
DEC r0
CJNE r0,#255,KT
;công việc
mov r0,p0
kt:
ret
Đây là chương trình phục vụ ngắt timer0.Sau khi ngắt dc kich hoạt thì chương trình phục vụ ngắt dc thực hiện.Chương trình này sẽ giảm r0 và so sánh với 0(tức là 255) nếu khác thì sẽ nhảy đến kt và trở lại chương trình chính, công việc này tiếp tục đến khi nào r0=0 va như vậy thì sẽ delay =r0*1ms .Khi r0=0 thì nó sẽ cập nhập giá trị của P0.
Comment
-
LJMP MAIN
ORG 000BH
LJMP NGAT_T0
MAIN:
MOV TMOD,#11H
MOV TH0,#HIGH(-1000)
MOV TH0,#LOW(-1000)
MOV R0,P0
SETB EA
SETB ET0
SETB TR0
NGAT_T0:
DEC R0
CJNE R0,#255,KT
MOV R0,P0
****** CONG VIEC*****
MOV R0,P0
RETI
kt:
vây nhãn kt mình có phải làm ji để nó way lại chương trình chính
Comment
-
em chưa hiểu 2 lệnh này lắm:
MOV TH0,#HIGH(-1000)
MOV TH0,#LOW(-1000)
nó dc sử dụng khi nào,max là bao nhiêu?
mà mình cứ phải nạp số âm vào ah? dùng khai báo như thế này trong trường hơp như thế nao?
mạo mụi hỏi mong ai biết trả lơi cho em .vì em chưa dùng cái này bao giờ
Comment
-
nó tương đương với lệnhNguyên văn bởi dung h Xem bài viếtem chưa hiểu 2 lệnh này lắm:
MOV TH0,#HIGH(-1000)
MOV Tl0,#LOW(-1000)
nó dc sử dụng khi nào,max là bao nhiêu?
mà mình cứ phải nạp số âm vào ah? dùng khai báo như thế này trong trường hơp như thế nao?
mạo mụi hỏi mong ai biết trả lơi cho em .vì em chưa dùng cái này bao giờ
MOV TH0,#HIGH(65536-1000)
MOV TL0,#LOW(65536-1000)
tức là nạp vào timer giá trị = 65536 - 1000 (= 1ms)
byte cao đưa vào TH0 byte thấp đưa vào TL0
Comment
-
í, cái này trong giáo trình có giải thích mà.
nói nôm na như vầy nhé, giả sử cài TIMER là 8bit, nó sẽ đếm từ 0->255, vậy bạn muốn delay 10uS thì làm sao, bạn cài cho TIMER giá trị ban đầu là 245, vậy sao 10uS nó sẽ tràn về 0. giá trị 245 ~ (-10) đó (8bit). người ta dùng giá trị âm cho dễ nhớ hơn.
Comment
-
Khi dùng timer ở chế độ 16 bít, bạn phải nạp giá trị đầu cho timer vào 2 thanh ghi là TH và TL. Trong chế độ 16 bít, thì giá trị đếm tối đa có thể lên đến 65536, tức là giá trị 16bit = 2 byte. Đưa byte cao vào TH, byte thấp vào TL.em chưa hiểu 2 lệnh này lắm:
MOV TH0,#HIGH(-1000)
MOV TH0,#LOW(-1000)
nó dc sử dụng khi nào,max là bao nhiêu?
mà mình cứ phải nạp số âm vào ah? dùng khai báo như thế này trong trường hơp như thế nao?
mạo mụi hỏi mong ai biết trả lơi cho em .vì em chưa dùng cái này bao giờFor a better world
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Tìm bạn thân quen cũ.bởi mèomướpDạ cháu đọc 1 số bài viết của bác vi... thì nhớ đc bác là 1 cụ già gần 80 tuổi, sức khỏe yếu. Đam mê và làm vc về kỹ thuật điện. Thích thơ ca. Có nhìu bài chia sẻ quý báu cho thế hệ sau. Tuy nhiên già rồi nên khái tính, bảo thủ, nhưng vẫn đáng kính ạ... còn lão nhathung... thì kiểu bố đời
-
Channel: Tâm tình dân kỹ thuật
31-07-2026, 12:52 -
-
bởi lvhnHãng nào tùy thích thôi bác! bây giờ các hãng đều hỗ trợ xem qua máy tính hay điện thoại đều được. Gắn Trước tiên mua về cắm nguồn set ip hết xong hãy lắp lên, cam poe chỉ cần 4 lõi là hoạt động bình thường nên 1 dây kéo cho 2 cam vẫn ok
-
Channel: Tâm tình dân kỹ thuật
30-07-2026, 15:49 -
-
Trả lời cho Tìm bạn thân quen cũ.bởi lvhnNhớ không nhầm thì lúc còn đi học có gặp chú 1 lần cf bãi xe Nguyễn Kim, giờ quán cf đó nghỉ bán rồi
-
Channel: Tâm tình dân kỹ thuật
30-07-2026, 15:44 -
-
Trả lời cho Thắc mắc pin 21v ?bởi lvhnCon số đấy biểu thị gần đúng thôi, cái đồng hồ đó có đảm bảo chính xác hay không? pin có cục lên 4v4 vẫn bình thường. Cái gì cũng có sai số trong phạm vi không quá lớn thì không ảnh hưởng gì đâu, bàn ngay ngón ngắn ngón dài mà
-
Channel: Điện tử dành cho người mới bắt đầu
30-07-2026, 15:32 -
-
Trả lời cho Amply bị rò DC 22 voltbởi lvhnThay mấy con transisto nhỏ đầu vào, thường vi sai lỗi hay bị. Khám tổng quát chân các linh kiện xem có bị rỉ sét nhiều không?
-
Channel: Điện thanh
30-07-2026, 15:24 -
-
bởi dinhthuong92Mạch này hiệu suất ra led đạt khoảng 90.7% tại 12V in, 40W out.
-
Channel: Nguồn!
27-07-2026, 10:15 -
-
bởi dinhthuong92Có lẽ nguồn viết bài này chỉ mang tính định tính để nói rằng cần thay đổi tổng trở tải để có Pmax chứ trình bày chưa chi tiết và thấu đáo một cách định lượng. Công thức tổng quát phải có mặt L mới được, và nói là "tổng...
-
Channel: Nguồn!
27-07-2026, 10:09 -
-
Trả lời cho [Chia sẻ] Tổng hợp các công ty AI Việt Nam đang làm gì thật sự — Từ voicebot, computer vision đến AI agentsbởi nguyendinhvanCàng ngày, CNTT càng trở nên lôi thôi , rách việc.
Cái AI và Ge... trên trình duyệt chỉ tổ làm vướng mắt, mất thì gian.
Tôi toàm phải mất cộng tắt nó đi.-
Channel: Xu hướng, nhu cầu và thị trường
25-07-2026, 14:59 -
-
bởi trung30000Em có con amply 12 sò D 718 và e688 , biến áp 15A, 30v 0 30 v, một kênh thì hoạt động bình thường, kênh còn lại nổ bụp bụp, sột sột, đèn tín hiệu nhảy lên vạch max, khoảng 4 đến 5 giây, sau đó đèn tín hiệu trả về mức không, Em thấy như...
-
Channel: Điện thanh
24-07-2026, 13:50 -
-
Trả lời cho Tìm hiểu máy hàn lăn (Rolling Welding)bởi hoang_3ibác cần thì liên hệ Em: mayhanhaivuong.com (0903238399)...
-
Channel: Điện tử công nghiệp
24-07-2026, 10:58 -

Comment